# 列表

l = [1, 2, 3, 4, 5, 6, 6, 8]

print(l[0])
print(type(l))

l.append(10)
print(l)

# 删除指定下标的元素
del l[1]

print(l)

# 取走末尾元素
print(l.pop())
print(l)

l.insert(1, 100)
print(l)

print(l[3])
# 负向下标  -1 到  -N
print(l[-5])

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 列表的切片   列表[开始的位置:结束的位置:步长]   默认步长wei1
print(l[1:9])

print(l[0:10:2])

# 开始下标和结束的下标可以省略   默认从头开始 到末尾
# 步长不写默认1
print(l[::])  # 复制一个列表

print(l[1:-4])

# 反转
# 步长为负数的时候从后往前截取
print(l[::-1])

# 反转  不返回新的列表
l.reverse()
print(l)

l = [1, 2, 1, 1, 2, 1, 3]
print(l.count(1))

l.sort()

print(l)

l = [1, "asd", True]

l1 = [[1, 2, 3], [2, 3, 4]]

# 元组 不可变的列表

t = (1, 2, 3, 4, 5)

print(t[1])
print(t[::-1])

# 修改对应位置的值
l[1] = 100

print(l)

# 字典


d = {"001": "java", "002": "python", "003": "scala"}

# 通过key获取value
print(d["001"])
print(d.get("004"))

l = [1, 2, 3, 4, 5]
# in  判断集合中是否包含某个元素
print(1 in l)

print("001" in d)

print(d.keys())
print(d.values())

# 遍历使用
print(d.items())

# 增加新的元素
d["004"] = "spark"

print(d)

# 删除元素
del d["004"]
print(d)

print(d.pop("001"))
print(d)
d.clear()
# 清空
print(d)

# set

s = {1, 2, 3, 4, 5, 6, 6, 7}
print(s)

s1 = {1, 2, 3, 4, 5, 6}
s2 = {4, 5, 6, 7, 8, 9}

print(s1 & s2)  # 交集
print(s1 | s2)  # 并集
print(s1 - s2)  # 差集
print(s1 ^ s2)  # 交集取反


